package search

import (
	"encoding/json"

	"gopkg.in/mgo.v2/bson"
)

type (
	BodyJsonFormat struct {
		Count          int              `json:"count"`
		Facets         string           `json:"facets"`
		Page           int              `json:"page"`
		MaxPage        int              `json:"maxPage"`
		RecommendCards *json.RawMessage `json:"recommend_cards,omitempty"`
		Symbol         string           `json:"symbol"`
		List           *json.RawMessage `json:"list"`
	}

	ListStruct struct {
		Id_                    bson.ObjectId `bson:"_id,omitempty" json:"mgoid,omitempty"`
		CanEdit                bool          `bson:"canEdit,omitempty" json:"canEdit,omitempty"`
		IsReward               bool          `bson:"is_reward,omitempty" json:"is_reward,omitempty"`
		PromotionId            int           `bson:"promotion_id,omitempty" json:"promotion_id,omitempty"`
		Expend                 bool          `bson:"expend,omitempty" json:"expend,omitempty"`
		Rqid                   int           `bson:"rqid,omitempty" json:"rqid,omitempty"`
		PaidMention            string        `bson:"paid_mention,omitempty" json:"paid_mention,omitempty"`
		CommentId              int           `bson:"commentId,omitempty" json:"commentId,omitempty"`
		RetweetedStatus        string        `bson:"retweeted_status,omitempty" json:"retweeted_status,omitempty"`
		TimeBefore             string        `bson:"timeBefore,omitempty" json:"timeBefore,omitempty"`
		TopicPicThumbnail      string        `bson:"topic_pic_thumbnail,omitempty" json:"topic_pic_thumbnail,omitempty"`
		IsBonus                bool          `bson:"is_bonus,omitempty" json:"is_bonus,omitempty"`
		Blocked                bool          `bson:"blocked,omitempty" json:"blocked,omitempty"`
		TopicTitle             string        `bson:"topic_title,omitempty" json:"topic_title,omitempty"`
		Favorited              bool          `bson:"favorited,omitempty" json:"favorited,omitempty"`
		CreatedAt              int           `bson:"created_at,omitempty" json:"created_at,omitempty"`
		FavCount               int           `bson:"fav_count,omitempty" json:"fav_count,omitempty"`
		Description            string        `bson:"description,omitempty" json:"description,omitempty"`
		Target                 string        `bson:"target,omitempty" json:"target,omitempty"`
		Fragment               string        `bson:"fragment,omitempty" json:"fragment,omitempty"`
		RewardUserCount        int           `bson:"reward_user_count,omitempty" json:"reward_user_count,omitempty"`
		SId                    int           `bson:"id,omitempty" json:"id,omitempty"`
		Offer                  string        `bson:"offer,omitempty" json:"offer,omitempty"`
		RewardCount            int           `bson:"reward_count,omitempty" json:"reward_count,omitempty"`
		IsRefused              bool          `bson:"is_refused,omitempty" json:"is_refused,omitempty"`
		Liked                  bool          `bson:"liked,omitempty" json:"liked,omitempty"`
		Text                   string        `bson:"text,omitempty" json:"text,omitempty"`
		Pic                    string        `bson:"pic,omitempty" json:"pic,omitempty"`
		ViewCount              int           `bson:"view_count,omitempty" json:"view_count,omitempty"`
		TopicPicThumbnailSmall string        `bson:"topic_pic_thumbnail_small,omitempty" json:"topic_pic_thumbnail_small,omitempty"`
		IsAnswer               bool          `bson:"is_answer,omitempty" json:"is_answer,omitempty"`
		SymbolId               string        `bson:"symbol_id,omitempty" json:"symbol_id,omitempty"`
		Type                   string        `bson:"type,omitempty" json:"type,omitempty"`
		Mark                   int           `bson:"mark,omitempty" json:"mark,omitempty"`
		Comment                string        `bson:"comment,omitempty" json:"comment,omitempty"`
		Source_                string        `bson:"source_,omitempty" json:"_source,omitempty"`
		Title                  string        `bson:"title,omitempty" json:"title,omitempty"`
		ReplyCount             int           `bson:"reply_count,omitempty" json:"reply_count,omitempty"`
		FirstImg               string        `bson:"firstImg,omitempty" json:"firstImg,omitempty"`
		SourceLink             string        `bson:"source_link,omitempty" json:"source_link,omitempty"`
		TopicPicHeadOrPad      string        `bson:"topic_pic_headOrPad,omitempty" json:"topic_pic_headOrPad,omitempty"`
		RetweetCount           int           `bson:"retweet_count,omitempty" json:"retweet_count,omitempty"`
		RetweetStatusId        int           `bson:"retweet_status_id,omitempty" json:"retweet_status_id,omitempty"`
		TopicPic               string        `bson:"topic_pic,omitempty" json:"topic_pic,omitempty"`
		DonateCount            int           `bson:"donate_count,omitempty" json:"donate_count,omitempty"`
		Rqtype                 string        `bson:"rqtype,omitempty" json:"rqtype,omitempty"`
		TopicDesc              string        `bson:"topic_desc,omitempty" json:"topic_desc,omitempty"`
		DonateSnowcoin         int           `bson:"donate_snowcoin,omitempty" json:"donate_snowcoin,omitempty"`
		FavoritedCreatedAt     string        `bson:"favorited_created_at,omitempty" json:"favorited_created_at,omitempty"`
		PromotionPic           string        `bson:"promotion_pic,omitempty" json:"promotion_pic,omitempty"`
		PromotionUrl           string        `bson:"promotion_url,omitempty" json:"promotion_url,omitempty"`
		Truncated              bool          `bson:"truncated,omitempty" json:"truncated,omitempty"`
		TopicSymbol            string        `bson:"topic_symbol,omitempty" json:"topic_symbol,omitempty"`
		Blocking               bool          `bson:"blocking,omitempty" json:"blocking,omitempty"`
		LikeCount              int           `bson:"like_count,omitempty" json:"like_count,omitempty"`
		Source                 string        `bson:"source,omitempty" json:"source,omitempty"`
		UserId                 int           `bson:"user_id,omitempty" json:"user_id,omitempty"`
		EditedAt               int           `bson:"edited_at,omitempty" json:"edited_at,omitempty"`
		MarkDesc               string        `bson:"mark_desc,omitempty" json:"mark_desc,omitempty"`
		PicSizes               []interface{} `bson:"pic_sizes,omitempty" json:"pic_sizes,omitempty"`
	}
)
